/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostPaymentModePageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      roleRights: Array<{
        roleRightId: number; // 角色权利ID
        userRole: number; // 用户身份 字段定义： 0 普通用户 3 单曲购买用户 4 专辑购买用户 6 歌曲包月用户 7 长音频包月用户 备注：单选
        canListen: number; // 可播放 字段定义： 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
        canDownload: number; // 可下载 字段定义： 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
        canCache: number; // 可缓存 字段定义： 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
        canTryListen: number; // 可试听 字段定义：试听30s 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
        invalidPrompt: number; // 受阻层 字段定义： 0 无 1 下载受阻开通付费包 2 缓存受阻开通付费包 3 付费播放+下载受阻开通付费包 4 付费播放+缓存受阻开通付费包 5 专辑购买 6 单曲购买 7 不可在线播放只可下载 8 不可在线播放只可缓存 9 播放+下载无损品质受阻开通付费包 10 免费歌曲HQSQ受阻开付费包 11 所有用户不可下载
        insertTime: string; // 插入时间
        modifyTime: string; // 修改时间
        paymentModeId: number; // 付费模式ID
      }>;
      paymentModeId: number; // 付费ID
      paymentModeName: string; // 付费模式名
      paymentType: number; // 付费口径 字段定义： 0-免费 1 付费1.0 2 付费2.0 3 付费3.0 4 数字专辑 备注：单选
      contentType: number; // 内容类型 字段定义： 0 所有内容 1 歌曲 2 长音频 备注：0 代表所有内容都可配该模式
      insertTime: string; // 插入时间
      modifyTime: string; // 更新时间
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postPaymentModePage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostPaymentModePageRes> {
  return request(data, {
    url: '/paymentMode/page',
    method: 'post',
    ...config,
  });
}

export interface GetPaymentModeIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    roleRights: Array<{
      roleRightId: number; // 角色权利ID
      userRole: number; // 用户身份 字段定义： 0 普通用户 3 单曲购买用户 4 专辑购买用户 6 歌曲包月用户 7 长音频包月用户 备注：单选
      canListen: number; // 可播放 字段定义： 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
      canDownload: number; // 可下载 字段定义： 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
      canCache: number; // 可缓存 字段定义： 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
      canTryListen: number; // 可试听 字段定义：试听30s 0 不可用 1 普通品质 2 普通品质+高品质 3 普通品质+高品质+无损品质
      invalidPrompt: number; // 受阻层 字段定义： 0 无 1 下载受阻开通付费包 2 缓存受阻开通付费包 3 付费播放+下载受阻开通付费包 4 付费播放+缓存受阻开通付费包 5 专辑购买 6 单曲购买 7 不可在线播放只可下载 8 不可在线播放只可缓存 9 播放+下载无损品质受阻开通付费包 10 免费歌曲HQSQ受阻开付费包 11 所有用户不可下载
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
      paymentModeId: number; // 付费模式ID
    }>;
    paymentModeId: number; // 付费ID
    paymentModeName: string; // 付费模式名
    paymentType: number; // 付费口径 字段定义： 0-免费 1 付费1.0 2 付费2.0 3 付费3.0 4 数字专辑 备注：单选
    contentType: number; // 内容类型 字段定义： 0 所有内容 1 歌曲 2 长音频 备注：0 代表所有内容都可配该模式
    insertTime: string; // 插入时间
    modifyTime: string; // 更新时间
  };
  traceId: string;
}

/**
 * 获取付费模式详情
 */
export async function getPaymentModeId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetPaymentModeIdRes> {
  return request(data, {
    url: `/paymentMode/${id}`,
    method: 'get',
    ...config,
  });
}

export interface PostPaymentModeRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 付费模式录入
 */
export async function postPaymentMode(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostPaymentModeRes> {
  return request(data, {
    url: '/paymentMode',
    method: 'post',
    ...config,
  });
}

export interface PutPaymentModeIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: boolean; // 返回数据
  traceId: string;
}

/**
 * 付费模式修改
 */
export async function putPaymentModeId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PutPaymentModeIdRes> {
  return request(data, {
    url: `/paymentMode/${id}`,
    method: 'put',
    ...config,
  });
}

export interface PostPaymentModeListRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: Array<{
    paymentModeId: number; // 付费ID
    paymentModeName: string; // 付费模式名
    paymentType: number; // 付费口径 字段定义： 0-免费 1 付费1.0 2 付费2.0 3 付费3.0 4 数字专辑 备注：单选
    contentType: number; // 内容类型 字段定义： 0 所有内容 1 歌曲 2 长音频 备注：0 代表所有内容都可配该模式
    insertTime: string; // 插入时间
    modifyTime: string; // 更新时间
  }>;
  traceId: string;
}

/**
 * 获取付费模式集合
 */
export async function postPaymentModeList(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostPaymentModeListRes> {
  return request(data, {
    url: '/paymentMode/list',
    method: 'post',
    ...config,
  });
}
